package com.example.wastewater.dao.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;

@Data
@TableName("tb_water_data")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WastewaterDO implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("average_outflow")
    private BigDecimal averageOutflow;

    @TableField("average_inflow")
    private BigDecimal averageInflow;

    @TableField("energy_consumption")
    private BigDecimal energyConsumption;

    @TableField("ammonia")
    private BigDecimal ammonia;

    @TableField("biological_oxygen_demand")
    private Integer biologicalOxygenDemand;

    @TableField("chemical_oxygen_demand")
    private Integer chemicalOxygenDemand;

    @TableField("total_nitrogen")
    private BigDecimal totalNitrogen;

    @TableField("average_temperature")
    private BigDecimal averageTemperature;

    @TableField("maximum_temperature")
    private BigDecimal maximumTemperature;

    @TableField("minimum_temperature")
    private BigDecimal minimumTemperature;

    @TableField("atmospheric_pressure")
    private BigDecimal atmosphericPressure;

    @TableField("average_humidity")
    private BigDecimal averageHumidity;

    @TableField("total_rainfall")
    private BigDecimal totalRainfall;

    @TableField("average_visibility")
    private BigDecimal averageVisibility;

    @TableField("average_wind_speed")
    private BigDecimal averageWindSpeed;

    @TableField("maximum_wind_speed")
    private BigDecimal maximumWindSpeed;

    @TableField("year")
    private Integer year;

    @TableField("month")
    private Integer month;

    @TableField("day")
    private Integer day;

    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private Timestamp createdAt;

    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private Timestamp updatedAt;

    @TableLogic
    @TableField("del_flag")
    private Boolean delFlag;

}
